\input{chapters/nopengine/ft}
\chapter{Hintergrundinformationen zum Berechnen von NOPs}\label{chapter:ground}
Dieses Kapitel befasst sich mit der Beschreibung der grundlegenden Hintergrundinformationen, sowie wichtigen Konzepten und der Methodik f"ur das Verst"andnis der in dieser Diplomarbeit behandelten Thematik zur Berechnung von NOP's f"ur das Projekt NOP-Engine.
\section{Konzepte}
Bevor die Konzepte von NOP-Engine dargestellt werden, werden zun"achst folgende allgemeine Definitionen vorgestellt, die f"ur das Verst"andnis der Konzepten wichtig sind.
\begin{itemize}
\item Die {\bf Web-Site} \engl{Web Site} ist eine Menge von unterschiedlichen Web-Seiten.
\item Die {\bf Web-Seite} \engl{Web Page} beschreibt  eine HTML Seite der Web-Anwendung oder ist "ahnlich wie JSP, ASP, PHP usw. 
\item Die {\bf Handlungsweisen von Benutzern} \engl{Behaviors} bezeichnen generell alles, was registrierende Benutzer online getan haben. Sie werden zum Berechnen von NOP's in zwei Gruppen aufgeteilt.
	\begin{description}
		\item[Gruppe 1:]\label{beh:group1} {\bf Zeitdauerhandlungsweisen} repr"asentieren, wie lange die Benutzer auf den Web-Seiten bleiben.
		\item[Gruppe 2:]\label{beh:group2} Alle anderen Handlungsweisen werden als {\bf Aktionshandlungsweisen} bezeichnet.
	\end{description} 
\end{itemize} 

\subsection{Thema}
Ein {\bf Thema} \engl{Topic} ist eine Art des Inhalts einer Web-Site und beschreibt eine Zusammenfassung einer Menge von Informationen, die von der Web-Site angeboten werden. Intuitiv ist ein Thema ein nat"urliches Wort. In Gugubarra wird eine Reihe von Themen auf der Designer-Seite f"ur eine Web-Site global\footnote{Auf die globalen Variablen in Gugubarra kann von allen drei Teilsystemen zugriffen werden.} definiert.

\subsection{Aktion}
{\bf Aktionen} \engl{Actions} bezeichnen die Aktionshandlungsweisen von registrierten Benutzern. Dadurch k"onnen Benutzer auf gewisse Informationen von Web-Seiten Zugriff erhalten. Aktionen sollten auch global definiert werden und k"onnen sich dynamisch ver"andern, d.h. man kann eine Aktion nach dem Anlegen bei irgendeinem Zeitpunkt "andern. Solche "Anderungen sollten sofort zum Aufbauen von neuen NOPs wirken.
%Au"ser dem Bezeichner wie \topics besitzen \actions noch \kc{Gewicht}(weight). Ein \kc{Gewicht einer}\action bezeichnet die Relevanz der \action innerhalb dem ganzen Web-Site.
\subsection{Gewicht}
Zum Berechnen und Analysieren von NOPs werden {\bf Gewichte} \engl{weight} f"ur Themen und Aktionen zur Verf"ugung gestellt. Diese Gewichte beschreiben die Relevanz von Themen und Aktionen f"ur eine Web-Site. Bei dem Anlegen einer Aktion soll sie einem Gewicht gleichzeitig zugewiesen sein. Im Gegensatz dazu besitzt ein Thema selbst kein Gewicht, sondern nur in Bezug auf eine Zone oder ein NOP.
\subsection{Zone}
Eine Web-Seite kann als eine Kombination von mehreren \kc{Bereichen}\engl{areas} betrachtet werden, die gewisse Inhalte einer Web-Site repr"asentiert. Eine {\bf Zone} besteht aus einer Reihe von solchen Bereichen. Eine Zone kann
\begin{itemize}
\item ein Teil einer Web-Seite,
\item eine ganze Web-Seite, oder
\item eine Kombination von Beiden
\end{itemize}
sein. In der Abbildung \ref{figure:zones} werden Zonen graphisch dargestellt. Ausgehend von dieser Definition soll eine Zone mehrere Themen enthalten. Die Kollektion solcher Themen wird als {\bf die Thema-Liste einer Zone} \engl{zone topic weight} bezeichnet.
\figuresOfZone
\subsubsection{Thema-Liste einer Zone}
Diese Listen enthalten nicht nur Themen, sondern auch entsprechende Thema-Gewichte in Bezug auf Zonen. Elemente in dieser Liste sind Paare von Themen und ihrer Gewichten, in mathematischer Schreibweise \[(Tp_i, v(Tp_i, Z_q))\] wobei 
\begin{itemize}
	\item $Tp_i$ ist das Thema mit dem Index $i$
	\item $v(Tp_i, Z_q)$ ist das Thema-Gewicht in Bezug auf die Zone $q$.
\end{itemize}
Bei der Erzeugung einer Zone wird eine Thema-Liste f"ur diese Zone gleichzeitig angelegt. Auf der Designer-Seite kann diese Liste nach der Erzeugung dynamisch ver"andert werden, z.B. durch das Einf"ugen oder Entfernen eines Themas bzw. des Gewichts.
\subsubsection{Zonenzustand}
Zonenzust"ande \engl{zone states} bezeichnen Zust"ande von Zonen. Es handelt sich darum, ob eine Zone zum Berechnen von NOP's beitragen soll. F"ur NOP-Engine stehen drei Zonenzust"ande zur Verf"ugung,
\begin{enumerate}
\item {\bf ON}\\Eine Zone mit dem ON-Zustand sollte zur NOP-Kalkulation beitragen.
\item {\bf OFF}\\Mit dem Zonenzustand OFF wird eine Zone beim Berechnen von NOPs ignoriert.
\item {\bf OFF-ACTION-SENSITIVE}\\In diesem Fall ist ein NOP nur von den \kc{Handlungsweisen}von Benutzern innerhalb einer Zone abh"angig, und Zeitdauerprofile (siehe Abschnitt \ref{durP}).
%\footnote{\durP} 
werden zum Berechnen von NOPs vernachl"assigt.
\end{enumerate}
Zonenzust"ande beeinflussen die NOP-Kalkulation und befassen sich mit der Abh"angigkeit zwischen Zonen und Zeitdauerprofilen bzw. Aktionsprofilen. 
\subsubsection{Zone Zero}
Eine Zone mit dem Zustand OFF und einer leeren Thema-Liste wird als eine {\bf leere Zone } \engl{Zone Zero} bezeichnet. Beide Eigenschaften, der Zonenzustand und die Thema-Liste dieser Zone, sind nicht ver"anderbar. Diese Zone wird als ein Platzhalter f"ur die zuk"unftige NOP-Berechnung betrachtet. 


\subsection{Semantik}
Bei {\bf Semantik} \engl{Semantic} handelt es sich darum, wie Thema-Gewichte in Bezug auf Zonen erstellt werden, und welche Bedeutungen die Thema-Gewichte bez"uglich der NOP's haben. F"ur die NOP-Berechnung stehen drei Arten von Semantik zur Verf"ugung, um unterschiedliche Ziele zur Analyse von NOP's zu erreichen. In der aktuellen Version von Gugubarra werden Semantik nicht implementiert, und nur als Platzhalter f"ur eine weitere Entwicklung von Gugubarra dargestellt.

\subsection{Strategie}
Beim Einsatz von Strategien \engl{strategy} liegt die Betonung auf Einstellungsvariablen \engl{settings} zum Berechnen von NOP's. Die NOP-Engine kann mehrere Strategien besitzen, aber bei einer NOP-Berechnung nur eine Strategie verwenden. Infolgedessen besteht es die M"oglichkeit, dass ein Benutzer mehrere NOP's haben kann. Strategien versehen NOPs von Benutzern mit verschiedenen Bedeutungen, und bieten eine Vielfalt zur Analyse der Handlungsweisen von Benutzern an.

\subsection{NOP}
In Gugubarra sind {\bf NOP's} Instanzen des "`None-Obvious Profile"', Ergebnisse von Designer und Eingaben von Clustering. Ein NOP wird als eine Liste der Paare
\[\Big(\,Tp_j, \:v(Tp_j, N_K)\,\Big)\]
dargestellt, wobei 
\begin{itemize}
\item $Tp_j$ das \topic $j$ ist, und
\item $v(Tp_j, N_k)$ das Thema-Gewicht in Bezug auf das NOP $k$ ergibt.
\end{itemize}
Ausgehend von den Strategien besitzt ein Benutzer m"oglicherweise mehrere NOP's. Sie m"ussen mit einem gewissen Historie-Mechanismus abgespeichert und sp"ater als Eingaben von Clustering verwendet werden.



\section{Methodik zur Berechnung von NOPs}\label{section:methodik}
In Gugubarra wird eine Methodik zum Berechnen von NOP's auf der theoretischen Ebene in Form von 5 mathematischen Formeln angeboten. Vor der Berechnung wird angenommen, dass die NOP-Engine alle ben"otigten Daten, die von oben als Konzepte deklariert sind, in einem wohlgeformten Format erhalten hat. Im Folgenden werden diese Formeln nacheinander detailliert beschrieben. 
\subsection{Zeitdauerprofil}\label{durP}
Bei einem {\bf Zeitdauerprofil} \engl{Page Duration Profile} in Bezug auf ein Thema handelt es sich darum, alle notierten Zeitdauerhandlungsweisen eines Benutzers innerhalb einer Web-Session mit der folgenden Formel dazustellen,
\formulaDurP
Angesichts der obenerw"ahnten Annahme sollten alle ben"otigten Informationen der Zeitdauerhandlungsweisen f"ur die Kalkulation von NOP's zur Verf"ugung stehen. Infolgedessen l"asst sich $duration(P_j)$ leicht erhalten. Das einzige Problem bei der Formel \ref{formulaDurP} ist es, $v(Tp_i, P_j)$ zu berechnen. Wir benutzen dazu die sogenannte {\bf Seitenregel} \engl{page rule}, die als eine Einstellungsvariable durch die Strategie gilt, um diesen Wert auszuwerten.
\subsubsection{Seitenregel}
In Gugubarra werden drei Arten der Seitenregel f"ur die NOP-Engine zur Verf"ugung gestellt.
\begin{itemize}
\item {\bf MAX-Rule}\\
Mit der Regel MAX-Rule gilt
\[
	v(Tp_i, P_j) := max(v(Tp_i, Z_q))
\]
mit
\begin{itemize}
	\item $\forall\: Z_q \in P_j$
	\item jede \zone $Z_q$ besitzt einen Zonenzustand "`{\bf ON}"'
\end{itemize}
\item {\bf MIN-Rule}\\
In diesem Fall wird das Ergebnis gegen"uber der MAX-Rule umgekehrt.
\[
	v(Tp_i, P_j) := min(v(Tp_i, Z_q))
\]
mit
\begin{itemize}
	\item $\forall\: Z_q \in P_j$
	\item jede \zone $Z_q$ besitzt einen Zonenzustand "`{\bf ON}"'
\end{itemize}
\item {\bf AVG-Rule}\\
Mit der AVG-Rule  wird der Mittelwert berechnet,
\[
	v(Tp_i, P_j) = avg(v(Tp_i, Z_q))
\]
mit
\begin{itemize}
	\item $\forall\: Z_q \in P_J$
	\item jede \zone $Z_q$ besitzt einen \zonestate "`{\bf ON}"'
\end{itemize}
\end{itemize}
Ausgehend von den Definitionen ist eine Vorbedingung wichtig f"ur alle Regeln. Nur die Zone mit einem Zonenzustand "`{\bf ON}"' darf von dieser Formel aufgenommen werden, sonst muss sie ignoriert werden. 


\subsubsection{Prominenter Faktor}
Um Thema-Gewichte in Bezug auf Web-Seiten zu versch"arfen, wird ein {\bf Prominenter Faktor} $pf$ von einer Strategie angeboten, mit
\[
	pf(Tp_i, P_j) :=  |Zs(Tp_i, P_j)| / |Zs(P_j)|
\]
wobei
\begin{itemize}
	\item $Zs(Tp_i, P_j)$ die Liste von den Zonen ist, die das Thema $Tp_i$ enth"alt und die Web-Seite $P_j$ vollst"andig oder teilweise einarbeitet.
	 \item $Zs(P_j)$ die Liste von den Zonen bezeichnet, die vollst"andig oder teilweise von der Web-Seite $P_j$ beinhaltet wird.
	 \item $||$ die Anzahl des Elements einer Liste berechnet.
\end{itemize}
Dieser prominente Faktor kann auch als Relevanz eines Themas in Bezug auf eine Web-Seite betrachtet werden. Damit ergibt sich eine Erweiterung von der Formel \ref{formulaDurP}

\begin{equation} \label{formulaDurPExt}
	DurP(i) = \frac{\displaystyle
		\sum_{j} \Big(duration(P_j)*\Big(v(Tp_{i}, P_j)*pf(Tp_i, P_j)\Big)\Big)}
		{\displaystyle\sum_{k}{duration(P_k)}}
\end{equation}
In der aktuellen Version des Gugubarra-Projekts wird der \kc{prominente Faktor} durch einen Schalter aktiviert oder deaktiviert. Das hei"st, ein sch"arferes Zeitdauerprofil kann nur durch den aktivierten prominenten Faktor erhalten werden, sonst muss die Formel \ref{formulaDurP} angewendet werden.

\subsection{Aktionsprofil}\label{actP}
Im Vergleich mit Zeitdauerprofilen werden Beitr"age der Aktionshandlungsweisen eines Benutzers in Bezug auf eine Web-Sitzung mit der Formel \ref{formulaActP} quantifiziert, und als {\bf Aktionsprofile} \engl{Action Profiles} bezeichnet. Die Formel zum Berechnen eines Aktionsprofils ist wie folgende,
\formulaActP
\subsection{Thema-Gewicht einer Session}
Beim {\bf Thema-Gewicht einer Session} \engl{Session Topic Weight} handelt es sich um die Summe eines Zeitdauerprofils und Aktionsprofils eines Benutzers innerhalb einer Web-Session. Es wird in Bezug auf ein spezifisches Thema zu einem bestimmten NOP quantifiziert. Mit der folgenden Formel wird ein Thema-Gewicht einer Session berechnet.
\formulaSessP
Durch die Formel \ref{formulaSessP} ergibt sich ein gemischtes Ergebnis f"ur ein Zeitdauerprofil und ein Aktionsprofil. Die Parameter $a$ und $b$ sind die Einstellungsvariablen der Strategie, und lassen sich als die Relevanz des Aktionsprofils bzw. des Zeitdauerprofils betrachten. Daraus ergibt sich, dass sich die Relevanz der Zeitdauerhandlungsweisen und Aktionshandlungsweisen leicht von dem Verwalter der NOP-Engine kontrollieren l"asst.
\subsection{neues Thema-Gewicht eines NOPs}
Bisher werden nur die Daten aus den neuen Handlungsweisen von den obenerw"ahnten Formeln verwendet. Die unten stehende Formel \ref{formulaNewP} ergibt einen kombinierten Beitrag der alten und neuen \kc{Handlungsweisen}. Das Ergebnis dieser Formel wird als das {\bf neue Thema-Gewicht eines NOP's} \engl{New Topic Weight of NOP} bezeichnet.
\formulaNewP
Der Parameter $f$ ist eine Einstellungsvariable, und wird in der Strategie f"ur diese Formel zur Verf"ugung gestellt.
\section{Offene Fragene}
Im Folgenden werden zwei offenen Fragen zur Berechnung von NOP's gestellt. Sie sollen bei der Implementierung der NOP-Engine in L"osung bringen.
\subsection{Historisierung der dynamisch ver"anderbaren Variablen und alten NOP's}\label{section:his}
Ausgehend von den Definitionen sind Aktionen und Zonen dynamisch ver"anderbar. Bei der Berechnung von NOP's sollen auf diese "Anderungen aufgepasst werden, um Nebenwirkungen der "Anderungen zu vermeiden. Das hei"st, dass eine Aktion oder Zone nach ihrer "Anderung in Zweier, sowie eine alte und eine neue gespaltet werden soll. Die vor oder nach dieser "Anderung aufgetauchten Handlungsweisen von Benutzern sollen mit der alten bzw. der neuen f"ur neue NOP's berechnet werden. Hierzu ist noch eine L"osung zum Speichern von alten NOP's, die von Clustering als Eingaben noch gebraucht werden, nach der Berechnung von neuen NOP's notwendig. Das Problem wird als eine offene Frage f"ur die NOP-Engine dargestellt. Dazu ist ein Historisierungsmechanismus f"ur das ganze System erforderlich. %um Nebenwirkungen der "Anderungen von den Aktionen und Zonen bei der Berechnung von \nops zu vermeiden, und alten NOPs f"ur das System Clustering anzubieten. 
Eine Historisierung l"asst sich nur durch folgende Ereignisse ausl"osen: 
\begin{enumerate}
	\item Nach der "Anderung des Gewichts einer Aktion
	\item Nach der "Anderung der Thema-Liste einer Zone,
		\begin{itemize}
			\item Einf"ugen eines neuen Paares (Thema, Gewicht)
			\item Entfernen von einem Paar
			\item "Anderung des Gewichts von einem Paar  
		\end{itemize}
	\item Nach der Berechnung eines neuen NOP's
\end{enumerate}


\subsection{Freies Ausw"ahlen einer Konkreten Funktion zur Auswertung des Parameters $f$}
In der Formel \ref{formulaNewP} wird der Parameter $f$ eingef"uhrt. Dieser Parameter soll durch eine Funktion, die von den Daten der neuen Web-Session abh"angig ist, ausgewertet werden. F"ur die NOP-Engine werden zwei solcher Funktionen zur Verf"ugung gestellt. Es besteht die M"oglichkeit, dass weitere Funktionen f"ur den Parameter $f$ in der NOP-Engine eingef"ugt werden. Zur Berechnung von NOP's sollen solche Funktionen frei w"ahlbar sein, und dynamisch erweitert werden.
%\section{Zusammenfassung}
%Dieses Kapitel beschreibt die grundlegende Hintergrundinformationen f"ur die NOP-Engine zum Thema, Berechnung von NOP's. Dabei werden die wesentliche Konzepte, die Methodik und die Aufmerksamkeiten vorgestellt. In den weiteren Teilen dieser Arbeit wird sich damit befasst, das System NOP-Engine Schritt f"ur Schritt zu implementieren.
\section{Zusammenfassung}
In diesem Kapitel werden die Konzepte der NOP-Engine und die durch f"unf mathematischen Formeln beschriebene Methodik zur Berechnung von NOP's auf der theoretischen Ebene vorgestellt. Hierzu lassen sich zwei offenen Fragen, sowie die Historisierung von dynamischen ver"andbaren Variablen und das freie Ausw"ahlen einer Konreten Funktion zur Auswertung des Parameters $f$ stellen, die bei der Implementierung der NOP-Engine in L"osung bringen sollen.